A CAPTCHA, or Captcha, is a type of challenge-response test used to determine whether the response is generated by a non-human entity (e.g., a computer or a piece of software executing on a computer). The test is based on the assumption that a human's ability in pattern recognition is much superior than that of a machine's, at least for the present. In a typical scenario, a CAPTCHA test involves presenting one or more images to a testee (i.e., the person being tested) together with a challenge (i.e., a question). The challenge is related to the images presented to the testee and generally requires the testee to recognize some form of pattern in the images. The testee needs to provide a correct response to the challenge in order to pass the test.
FIGS. 1A and 1B illustrate two sample CAPTCHA tests 110 and 120. In FIG. 1A, CAPTCHA test 110 includes an image 111 of a distorted text string. Note that texts may be considered a special form of image. A challenge 112 asks the testee to recognize the distorted text string and enter it in a response field 113. In order to pass the test, the testee must enter the correct text string shown in image 111 (i.e., “F8BpdG”). In FIG. 1B, CAPTCHA test 120 includes an image 121 of an animal. A challenge 122 asks the testee to recognize the animal and describe it in a response field 123. In order to pass the test, the testee must correctly identify the animal shown in image 121 (i.e., a cat).
CAPTCHAs are often used to prevent automated computer software from performing actions that degrade the quality of service of a given system and/or perform unauthorized actions. When constructing CAPTCHA tests, several points often need to be considered. First, the challenges should be constructed such that current computer software is unable to determine the responses accurately while most humans can. Second, there needs to be enough instances of CAPTCHA tests such that human CAPTCHA solvers employed by spammers are unable to enumerate them all.